package xin.codedream.codelog.service;

import org.apache.ibatis.annotations.Param;
import xin.codedream.codelog.model.entity.Comment;

import java.util.List;

/**
 * 文章评论功能服务接口
 *
 * @author NGLSL
 * @date 2018/9/6
 */
public interface CommentService {
    /**
     * 根据文章Id查找评论
     *
     * @param articleId 文章ID
     * @return List
     */
    List<Comment> findCommentByArticleId(Long articleId);

    /**
     * 通过文章Id删除相关的评论
     *
     * @param articleId 文章Id
     * @return boolean
     */
    boolean removeCommentByArticleId(Long articleId);

    /**
     * 统计所有评论数量
     *
     * @return int
     */
    int countAllCommentQuantity();

    /**
     * 获取最近五条评论
     *
     * @return List
     */
    List<Comment> findFiveComment();

    /**
     * 获取所有评论
     *
     * @param commContent 评论内容
     * @param pageNum 当前页数
     * @param pageSize 页数大小
     * @return List
     */
    List<Comment> findAllComment(String commContent, Integer pageNum, Integer pageSize);

    /**
     * 通过评论ID删除评论
     *
     * @param commId 评论Id
     * @return boolean
     */
    boolean removeCommentById(Long commId);

    /**
     * 通过Id更新评论状态
     *
     * @param comment 评论数据
     * @return int
     */
    boolean updateCommentStatusById(Comment comment);

    /**
     * 通过评论Id查找评论信息
     *
     * @param commId 评论Id
     * @return Comment
     */
    Comment findCommentById(@Param("commId") Long commId);
}
